home *** CD-ROM | disk | FTP | other *** search
/ Netware Super Library / Netware Super Library.iso / inet_tcp / fxuuci / fxuuci.doc < prev    next >
Text File  |  1994-09-30  |  50KB  |  1,200 lines

  1. FX UUCICO is Copyright (c) 1993, 1994 by Jorge Cwik. All rights reserved.
  2. <jorge@satlink.net>
  3.  
  4. Version 1.0
  5.  
  6.  
  7.               TABLE OF CONTENTS
  8.  
  9.               I.     INTRODUCTION
  10.  
  11.               II.    INSTALLATION
  12.                          Updating from previous FX releases
  13.                          Installing from scratch
  14.                          Replacing Waffle's Uucico
  15.  
  16.               III.   WAFFLE ISSUES
  17.  
  18.               IV.    RUNNING FX UUCICO
  19.                          Dial in mode
  20.                          Answer mode
  21.                          Aborting the connection
  22.  
  23.               V.     FEATURES
  24.                          Internal 'COMM' driver
  25.                          FOSSIL interface
  26.                          File restart
  27.                          Execution requests
  28.                          Grades
  29.                          File size negotiation
  30.                          Status bar
  31.                          Logging
  32.  
  33.               VI.    PROTOCOLS
  34.                          Protocol 'f'
  35.                          Protocol 'y'
  36.                          Protocol 'g'
  37.                          Protocol 'G'
  38.                          Protocol 'v'
  39.  
  40.               VII.   CONFIGURATION
  41.                          Command line parameters
  42.                          STATIC configuration file
  43.                          'systems' file
  44.                          'dialers' file
  45.                          'scripts' file
  46.                          scripts syntax
  47.                          'permits' file
  48.                          Time field format
  49.                          (see also the file FXCONFIG.REF)
  50.  
  51.               VIII.  ASSISTANCE
  52.  
  53.               IX.    LEGAL
  54.  
  55.  
  56.               In the technical guide:
  57.  
  58.               I.     NETWORKING
  59.               II.    MULTITASKING
  60.               III.   16550A FIFO UARTS
  61.               IV.    TELEBIT modems
  62.               V.     EXIT LEVELS
  63.               VI.    STATUS files
  64.               VII.   SECURITY
  65.               VIII.  LIMITS AND MEMORY USAGE
  66.               IX.    CUSTOM INTERFACES WITH FX UUCICO
  67.  
  68.  
  69. I.  INTRODUCTION
  70.  
  71. FX UUCICO is a drop-in replacement for Waffle's UUCICO. It's
  72. fully compatible with Waffle 1.65, but adds a lot of new features:
  73.  
  74. o   Up to 115200 bps, support for 16550A and custom serial ports.
  75. o   Eliminates most needs for FOSSIL, but it is still supported.
  76. o   File restart (crash recovery).
  77. o   Fully networkable, share multiple concurrent instances.
  78. o   File size negotiation and free space management.
  79. o   Execution requests.
  80. o   Status bar, shows progression of file transmissions.
  81. o   A very robust and efficient protocol 'g' implementation.
  82. o   Smart protocol 'g', with variable packets up to 4096 bytes.
  83. o   A new, extremely fast protocol 'y' for high-speed modems.
  84. o   Protocol 'f' for X.25 or other 7-bits lines.
  85. o   Protocol 'G' for SVR4 systems, and protocol 'v'
  86. o   Full support for incoming and outgoing grades.
  87. o   Support for comprehensive statistics.
  88. o   Improved security.
  89. o   Many new configurations options, and permits variables.
  90. o   Simpler configuration
  91. o   Interface to Intelligent Digiboards and non-standard Fossil drivers.
  92.  
  93.  
  94. In all UUCP packages UUCICO is the program who manages the external
  95. communications and file transfers. It's similar to Terminal Programs
  96. (like Telix), except that it performs completely automatically.
  97.  
  98. Because modems (even the newest) are very slow in computers terms, and
  99. because long distance connections are very expensive, UUCICO performance
  100. is critical.
  101.  
  102.  
  103.  
  104. II.  INSTALLATION.
  105.  
  106.             ---   Updating from previous FX releases   ---
  107.  
  108. If you are updating from FX 0.4 you have very little to do but replace
  109. the executable with the new one (backup the old one, first).  Read the
  110. WHATSNEW files and browse the configuration reference for the new options.
  111.  
  112. Notes:
  113.   See the configuration chapter. FX supports a new configuration model,
  114.   much simple than previous versions.
  115.  
  116.  
  117.                 ---   Installing from scratch   ---
  118.  
  119. If you are installing Uucico for the first time you need to create the
  120. necessary configuration files. Those that interface FX with a third
  121. party package may have special instructions provided with that package.
  122. The minimal installation requires placing FXUUCP.CFG along with the
  123. executable in a single directory, the easiest way is to copy the samples
  124. and make the appropriate modifications.
  125.  
  126.  
  127.                 ---   Replacing Waffle's Uucico   ---
  128.  
  129. 1) Copy your current UUCICO.EXE to UUCICO.OLD. This is to make sure that
  130. you don't overwrite your original copy. We strongly urge you to take the 
  131. time to make a copy!
  132.  
  133. 2) Copy the FX UUCICO.EXE into your waffle\bin directory.
  134.  
  135. Because it's designed as a replacement, FX UUCICO will perform perfectly
  136. well without any changes to your WAFFLE environment.
  137.  
  138. You may want to make the first tests without changing any parameters.
  139. FX UUCICO should work right out of the box. Deferring the fine-tuning
  140. settings, will help you in finding any particular problem.
  141.  
  142. The only recommended changes (not mandatory) are these:
  143.  
  144. o  Add "fx.gpktsize: 1024" to your configuration file, keep windows setting 
  145.    at seven.  (NOTE: _only_ if the system you are connecting supports this 
  146.    size)
  147.  
  148. o  Don't use a FOSSIL driver, unless you really need it.
  149.  
  150. o  If you have a high-speed modem (over 2400), configure it to use hardware 
  151.    flow control (CTS/RTS).
  152.  
  153. o  If you have an error-correction modem you may want to use the new 'y' 
  154.    protocol (change your 'systems' entries in the UUCP directory). Currently 
  155.    the 'y' protocol is supported by FX only, but is in the process of being
  156.    added to other UUCP software.
  157.  
  158. o  If you are sharing multiple copies, use "fx.share: true".
  159.  
  160. Examples:
  161.  
  162. In your STATIC file...
  163.  
  164. driver:      fossil
  165. uu.driver:   native
  166. uu.windows:  7
  167. fx.gpktsize: 1024
  168.  
  169. Keep your previous configuration. If the changes are not working restore
  170. your old setting and enable each option in turn.  Particularly, large
  171. packet size may not work when connecting to old uucp implementations.
  172.  
  173.  
  174.  
  175. III.  WAFFLE ISSUES
  176.  
  177. FX UUCICO is fully compatible with WAFFLE 1.65, we tried very hard to make
  178. it as transparent as possible. Most messages and logs are exactly the same,
  179. although 'debugging' messages may differ.
  180.  
  181. There is a potential incompatibility in the waffle/admin/net file. This file
  182. logs all connections and reports transmitted packets.  Unfortunately there 
  183. is no indication of the amount in bytes or the packet size. This presents a 
  184. problem when different packet sizes are used and with protocols that do not 
  185. use pkts at all.
  186.  
  187. We changed the line format of this file to make it more descriptive. Utility
  188. programs that depend on the old/waffle format will probably not work. One of
  189. them is NETSUM, there are replacement programs available from our server.
  190.  
  191. A second incompatibility may arise in direct uucp transfers (with the 
  192. uucp.exe program). The enhanced security features of FX, may deny transfers 
  193. that Waffle's Uucico considered valid. They represented a serious security
  194. hole and we are confident that you agree with our decision.  See the permits
  195. chapter and 'fx.trusted' for more info.
  196.  
  197.  
  198. We are very grateful to Tom Dell, author of Waffle, for the open architecture
  199. and the vast documentation of Waffle, without which would be impossible to
  200. achieve the compatibility provided by FX UUCICO.  Mr. Dell can be contacted
  201. at dell@vox.darkside.com
  202.  
  203. All references to WAFFLE are for version 1.65.
  204. WAFFLE is the Copyrighted property of Darkside Int'l.
  205.  
  206.  
  207.  
  208. IV.  RUNNING FX UUCICO
  209.  
  210. Uucico is usually run from inside a batch file  or directly from the command 
  211. prompt. There are two different modes of operation, dial-out or master mode, 
  212. and dial-in or slave mode.
  213.  
  214. The dial-out mode is for placing a call, usually known as polling.  This is 
  215. the default mode and only requires you to specify the sites you want to call 
  216. with the -s parameter. The -s parameter has three different usage conditions:
  217.  
  218.  -s all                      polls all known hosts
  219.  -s any                      polls hosts with queued jobs
  220.  -s host[,hostlist]          polls specified host[s]
  221.  
  222. For every outgoing call, Uucico will run two scripts, the dialer and the 
  223. login scripts as specified in the 'systems' file.  The dialer script usually 
  224. performs modem initialization and dialing.  The login one, will automatically 
  225. do the necessary procedure for accessing your remote host uucp services. The 
  226. syntax of the scripts are documented in its own chapter.
  227.  
  228. Dial-in mode receives incoming calls. The -r0 parameter signals Uucico to 
  229. enter slave mode. Obviously the -r0 and -s parameters are mutually exclusive. 
  230. The slave mode requires the connection to be previously established, FX will 
  231. not currently pick up the phone or prompt for login by itself. This task must 
  232. be performed by waffle.exe or any other frontdoor.
  233.  
  234. In both modes optional parameters may be used. See the configuration chapter.
  235.  
  236.  
  237.                  ---   Aborting the Connection   ---
  238.  
  239. You can interrupt program execution at any time by pressing control^break.
  240. Uucico will then close the connection in a clean and orderly fashion. It
  241. may take a couple of seconds until the exit procedure is performed.
  242.  
  243. If you press control^break several times, the interrupt module assumes
  244. that the software might be locked and aborts immediately. Use this only
  245. when you suspect a "hang-up" situation, because the only task performed
  246. is to put the modem on-hook. Logs are not updated and internal buffers
  247. are not flushed.
  248.  
  249.  
  250.  
  251. V.  FEATURES.
  252.  
  253.                  ---   Internal 'COMM' driver   ---
  254.  
  255. The RS-232 driver has been enhanced to avoid the need of FOSSIL in most cases. 
  256. It's supports up to 115200 bps, hardware flow control, custom I/O ports addr-
  257. esses and IRQs, and automatic detection of 16550A 'fifo' chips.
  258.  
  259. FX fully supports V.FC and V.34 modems at 28,8 Kbps.
  260.  
  261. FIFO operation is controlled by the parameter -z, use -z0 to disable auto
  262. detection and FIFO mode. For maximum reliability in multitasking systems use 
  263. low trigger values.
  264.  
  265. To change the default settings of your serial port, append the new I/O address 
  266. and IRQ level to the port number. You may specify one or both parameters, the 
  267. missing one will keep the default value.
  268.  
  269. The syntax is port,address,irq. The address must be in hex.
  270.  
  271. Examples:
  272.  
  273.     1,2F0,5
  274.     3,,7
  275.     COM2,2E0
  276.     4
  277.  
  278. You may use this syntax in any place that FX reads port devices. Currently
  279. they are: 
  280.  
  281. 1) 'device' in static 
  282.  
  283. 2) The port field in the dialer 
  284.  
  285. 3) the -d runtime parameter. 
  286.  
  287. Note that when both are set, the port number is actually disregarded.
  288.  
  289. The PC has a de facto standard on the hardware settings of COM1-COM4. Most 
  290. internal modems and serial cards come configured for those default values.
  291. Use ONLY if you know what you are doing, unexpected behavior may result
  292. trying to access the wrong hardware. High IRQs (8-15) are supported for
  293. 16-bit (or 32-bit) cards.
  294.  
  295.  
  296.                     ---   FOSSIL interface   ---
  297.  
  298. When using a FOSSIL driver you MUST set the receiving buffer size larger than
  299. the packet size (/R parameter in the BNU version) or enable 'fx.dblBuffer'.
  300. The default of 1024 bytes is not enough for the 'y' protocol. Note that using
  301. a FOSSIL driver may usually slow your performance. Most  *do not* support bps 
  302. over 38400. For those that they do, you must lock the speed from the FOSSIL 
  303. command line. You can still use it (and we recommend you do) for WAFFLE in-
  304. coming calls (Awaiting Call).
  305.  
  306. It's possible that some systems may experiment an erratic behavior with the 
  307. internal driver. Some old RS-232 boards, and some internal modems do not have 
  308. a full compatible UART. In those cases a FOSSIL driver (which may have been 
  309. tested with these boards) may give better results.
  310.  
  311. Some non-standard FOSSILs don't perform correct buffering. This is usually
  312. the case, in drivers for ISDN and smart multiport boards. If you receive a
  313. message reporting that the driver buffers are too small, enable the
  314. 'fx.dblBuffer' option.
  315.  
  316.  
  317.                    ---   DIGIboard interface ---
  318.  
  319. FX Uucico can directly interface with the Digiboard Universal Driver. The 
  320. digiboard driver is selected with the options 'driver' or 'uu.driver':
  321.  
  322. driver : DIGI
  323.    or
  324. uu.driver : DIGI
  325.  
  326. The port number is specified as with the other drivers. With the 'device' 
  327. option or the '-d' run time parameter. Note that the port number corresponds
  328. to the DOS names, not the digi channels (DOS names start with one, but digi
  329. channels start with zero).
  330.  
  331. device: 5
  332.  
  333. The above line select digi channel _four_, which would normally be COM5. If
  334. this sounds confusing, remember that this the same number you probably use
  335. with other communication software.
  336.  
  337. The digi universal driver must be loaded. No other software is needed. You 
  338. cannot set the I/O port or the IRQ number from inside FX, the DIGI setup
  339. software should be used for this purpose. FX doesn't need any special para-
  340. meters to be set by the DIGI driver. Specifically, DOS/EBIOS support doesn't
  341. need to be present (however note, other applications may need it). The line
  342. parameters are internally set by FX (bps, mode, flow control, etc).
  343.  
  344. You can't currently specify different drivers for different ports (mixing
  345. digiboards with standard serial ports). You would need to use two different
  346. configuration files in such cases, the 'include' feature could be helpful
  347. for multiple configs.
  348.  
  349.  
  350.                        ---   File restart   ---
  351.  
  352. FX UUCICO supports file transfer restart, compatible with Unix SVR4 and TAYLOR
  353. UUCP implementations. This is similar to the crash recovery feature in ZMODEM.
  354. You can disable file restart with the new parameter -a.
  355.  
  356. You may need to temporarily disable the crash recovery option when sending
  357. a file whose name matches an existing file. If UUCP is used to transfer a
  358. file, and the same filename is found in the destination directory, UUCICO
  359. will interpret this as a 'recovery' situation, and APPEND to the existing
  360. file.
  361.  
  362.  
  363.                    ---   'E'xecution request   ---
  364.  
  365. FX supports Taylor Uucp 'E'xecution requests. These commands don't need
  366. the transmission of 'X.*' files, resulting in a single file transfer per
  367. transaction instead of two. Note that some sites running Taylor Uucp will
  368. not send 'E' commands. FX UUCICO will _receive_ 'E' requests automatically
  369. without any changes, FX UUCP is needed for _sending_ them.  The operation
  370. is completely transparent to the user, we included this paragraph for
  371. informational purposes only.
  372.  
  373.  
  374.                       ---   Grades   ---
  375.  
  376. Grades in UUCP links means 'priorities'. By using different grades you can
  377. control which (uucp) jobs are more 'urgent'. Many sites implement this so
  378. they can make better use of the system resources. For instance, mail always
  379. gets assigned Grade 'A' so that it will be sent/received at all hours. But
  380. news may be assigned a Grade of 'B' (or something lower than 'A') so that
  381. newsfeeds only happen during sessions which permit 'B' traffic. Regular file
  382. sends/receives may be Grade 'C' or lower.
  383.  
  384. All of this allows a site to arrange their traffic so that mail always comes
  385. and goes, but newsfeeds only happen at certain times, and file transfers only
  386. happen in the wee hours of the morning when system usage is lowest.
  387.  
  388. FX UUCICO has full support for grades, and it's compatible with the standard
  389. used in most UNIX UUCP hosts. Grades consist of a _single_ letter attached to
  390. the (uucp) job file name when it is created. They are classified in reverse
  391. ASCII collateral order: 'A' is the highest grade and 'z' is the lowest. Grades
  392. are case sensitive in Unix systems, but they aren't in DOS because DOS doesn't
  393. distinguish cases in filenames.
  394.  
  395. Calls made by UUCICO use the static file parameter 'uu.grade' and/or the -g
  396. command line parameter for establishing call grade. Calls received by UUCICO
  397. uses the grade requested by the caller. The 'caller' (who's probably  paying 
  398. for the connection) ALWAYS governs the grade. UUCICO will not send jobs that  
  399. have low grades than specified, and the remote host is supposed to do the same.
  400.  
  401. When no grade is specified, all jobs are transferred.
  402.  
  403. FX UUCICO may also order the jobs by grade priority. See 'fx.sortJobs'
  404.  
  405. If you do not use grades, WAFFLE will create all jobs with decimal digits
  406. which have an even higher priority. You can still request the remote host for
  407. grade limits. A request for a determined 'grade' will enable transmission
  408. of any job with the same *or higher* grade.  This is not fully compatible
  409. with Waffle's UUCICO usage, but it is with virtually all other UUCP packages.
  410.  
  411. Grades are not very useful if the 'caller' doesn't know the remote host conv-
  412. ention. If you implement grades you should tell your users what grades you use
  413. for mail and news.
  414.  
  415. UUCICO doesn't generate grades, because it doesn't create jobs. Rmail, rnews,
  416. uux and 'uucp' create jobs as specified in the 'mailgrade' and 'newsgrade'
  417. configuration. Note that even though it's not documented, most WAFFLE util-
  418. ities accept a -g parameter to override the grade generation.
  419.  
  420.  
  421.                ---   File size negotiation   ---
  422.  
  423. This is an extension to the UUCP protocol introduced by Unix SVR4 and enhanced
  424. by TAYLOR UUCP. Each side tell the others the maximum file size it can accept,
  425. and the exact size in bytes of files before they are transmitted. File sizes
  426. are limited by the Operating System, by the available space on disk and by con-
  427. figuration.
  428.  
  429. FX UUCICO can be configured for a maximum file size transmission and to leave a
  430. minimum free space on the spool disk. A cooperative party (a remote UUCICO that
  431. uses file sizes) is needed for full implementation.
  432.  
  433. There are two parameters in the 'static' file for size usage:
  434.  
  435.     'fx.maxfile'
  436. and
  437.     'fx.freespace'
  438.  
  439. FX UUCICO will not send files larger that 'maxfile'. It will request the other
  440. side to not send files larger than 'maxfile' or that will leave less than
  441. 'freespace' on disk.
  442.  
  443. If the remote host doesn't understand file size negotiation, FX UUCICO will
  444. still check space on the local site, and reject any files which will leave 
  445. less than 'freespace' bytes the local system.
  446.  
  447. Caveat: Currently FX UUCICO will not do additional checking, once the trans-
  448. mission of a particular file has begun. Future releases will probably check
  449. for disk usage 'on the fly.'
  450.  
  451. Note that the remote side who is sending a file may react to the 'denying for
  452. size reasons' in different ways. If it's not aware of the 'file size' extensions
  453. it may NEVER send that file again (you may have enough space on disk later).
  454. This is not a failure of FX UUCICO, but simply a feature missing from the host
  455. you communicate with.
  456.  
  457. If 'fx.freespace' is not present in the configuration file, FX UUCICO will not
  458. check for free space on disk at all (which might improve performance on some
  459. systems). If 'fx.maxfile' is not present the default is 32 Megabytes.
  460.  
  461.  
  462.                       ---   STATUS BAR   ---
  463.  
  464. The switch (-V) enables a status bar at the top of the screen. This bar
  465. shows file transfer progress at real time. The exact format of the line
  466. changes if Uucico doesn't know the length of the current file. When talking
  467. to another FX or Taylor Uucp, FX always knows the length beforehand.
  468.  
  469. To support this status bar, the -V switch changes completely the way it
  470. writes to the screen. Normally all screen output goes through DOS, but
  471. when the -V switch is on, FX writes directly on the video memory. This has
  472. a considerable impact on performance and compatibility.
  473.  
  474.  
  475.                        ---   Logging   ---
  476.  
  477. Logging is essential for large sites administration. FX has several log
  478. files and allows you to configure the amount of information written to
  479. them. The location of all log files may be specified with 'fx.logdir'
  480.  
  481. FX UUCICO creates two different main log files: 'uucico' has the normal
  482. logging, and 'debug' has all the testing messages and info.  This has the
  483. advantage of _not_ clobbering the normal log with tons of debugging messages.
  484.  
  485. All logged messages are displayed on the screen as well.  Each message
  486. has a level number assigned, only those with a lower or same level than
  487. the current debug level are logged. The debug level may be independently 
  488. configured for the screen and for the log files. 'uu.debug' and the -x
  489. switch, 'uu.visual' and -v, configures the disk and screen debuglevel
  490. respectively. Using high settings may substantially AFFECT PERFORMANCE.
  491.  
  492. Because using high debug levels may create a huge log, there is a parm in
  493. the 'static' file that overrides the location where the 'debug' file is
  494. written. You may want to put your 'debug' file in a ramdisk, because otherwise
  495. the speed may slow down considerably when using higher debug levels (8 an up).
  496.  
  497. In addition to those, UUCICO also writes to the 'net' and 'uulog' files.
  498. The 'net' log has a single line for each connection reporting total time,
  499. bytes and errors. Files transmitted are logged in 'uulog', the 'fx.uulogLevel'
  500. option is similar to the debug level one.
  501.  
  502.  
  503.  
  504. VI.  PROTOCOLS
  505.  
  506.                    ---   Protocol 'f'   ---
  507.  
  508. The protocol 'f' is on the original Unix UUCPs. It's designed for 'flow con-
  509. trolled, error correction' 7-bits lines. This protocol is very inefficient for
  510. binary (8-bits) files. It has _no_ internal flow control or error correction.
  511. The only recommended use (and the one it was designed for), is X.25 or other
  512. non 8-bit transparent lines.
  513.  
  514. Any error during downloads will result in truncating the file to zero length,
  515. this is to avoid invalid data, if file restart is afterwards used. (Note:
  516. aborted downloads with ctrl-c/ctrl-break are not truncated).
  517.  
  518.  
  519.                    ---   Protocol 'y'   ---
  520.  
  521. This protocol is new. It's extremely fast and efficient. As the 'f' protocol
  522. it was designed for 'error correction' (MNP-V42) modems, but it uses 8-bit
  523. bytes. It's probably the fastest protocol, but you need a 'clean' connection
  524. between both ends.
  525.  
  526. Most new modems, have hardware error correction. The modems will take care of
  527. flow control and error correction. Note that FX UUCICO has no reliable way to
  528. ensure that an 'error correction' connection has been established. We recom-
  529. mend you 'force' MNP or V42, (see your modem docs).  Because its a streaming 
  530. protocol (no windows), 'y' it's very efficient on HALF duplex connections 
  531. (USR HST and Telebit PEP/TurboPEP).
  532.  
  533.  
  534.                     ---   Protocol 'g'   ---
  535.  
  536. FX UUCICO supports the full 'g' implementations with variable sized packets up
  537. to 4096 bytes. The error management is very robust and efficient, which should
  538. result in a much better throughput in noisy lines.
  539.  
  540. Using a large window size (packet size * max windows), makes a big difference
  541. in 'long delay' lines (as in long distance calls), especially in high speed
  542. modems. We do recommend you to use a large packet size, and keep windows at 7.
  543.  
  544. Because UUCP protocols are used to transfer everything, not just the files,
  545. large packets are inefficient for very small files. This is why variable size
  546. packets are used, only the minimum packet size needed will be used for each
  547. packet.
  548.  
  549. Unfortunately many old UUCP implementations don't support anything but 3 win-
  550. dows, 64 bytes fixed packets. Some ones are so badly designed that they even
  551. accept other configurations but crash. The -k parameter governs the max packet
  552. size allowed. If the remote host request packet sizes larger than 64, variable
  553. size packets will be used too. Only powers of 2 (from 32 to 4096) are valid:
  554. 32, 64, 128, 256, 512, 1024, 2048 & 4096.
  555.  
  556. Waffle UUCICO supports 128, 256 and 512, but not variable sizes. We note that
  557. many UNIX systems accept 128 (HDB based) and some of them 256. Taylor UUCP
  558. supports the whole range. FX UUCICO is fully compatible with it, and will work
  559. with any configuration. For better results you should your remote hosts which
  560. use Taylor to implement large packet size and enable short packets.
  561.  
  562. You _must_ use the -S switch to connect with Waffle Uucico at any packet size
  563. larger than 64 bytes. If you can't connect to a Unix host, reduce the packet
  564. size to 64. Many old implementations will behave in very strangely ways, when 
  565. _trying_ to use large sizes.
  566.  
  567. The default packet timeout was increased to 20 seconds. If you use large pack-
  568. ets and receive calls at low speed, check that the parameter 'uu.delay' is not
  569. too short.
  570.  
  571.                       ---   Protocol 'G'   ---
  572.  
  573. This is a variation of the 'g' protocol used in SVR4 that is known to implement
  574. the full range of packet sizes. It _doesn't_ use variable sizes, so it's not 
  575. recommended for systems which support large packets on the 'g' protocol.
  576.  
  577.                       ---   Protocol 'v'   ---
  578.  
  579. Also a variation of the 'g' protocol. Contrary to the 'G' one, short variable
  580. packets are always on.
  581.  
  582.  
  583.  
  584. VII.  CONFIGURATION
  585.  
  586. This section describes all the configuration aspects of FX Uucico. For advanced 
  587. users the software is highly configurable. Most settings default to reasonable 
  588. values. At the minimum you must supply the appropriate 'systems' entries, your 
  589. computer name, device and port speed, everything else is optional.
  590.  
  591. The configuration can be kept as simple as you wish. Don't be overwhelmed by
  592. the large amount of options. They are there for customizing the system. You
  593. may start with the basic example provided. It is much more easier to browse
  594. the examples than reading all the following chapters.
  595.  
  596. There are two models. A basic configuration model appropriate for leaf
  597. nodes (which poll a single remote host), and an advanced one for servers
  598. and custom installations.
  599.  
  600. BASIC MODE:
  601.  
  602.    The basic model requires only one configuration file. It is limited to
  603.    a single remote system, and currently, with a single phone access number.
  604.  
  605.  
  606. ADVANCED MODE:
  607.  
  608.    Configuration is performed by a master file, and the accessory ones:
  609.    'systems', 'dialers', 'scripts' and 'permits'. 
  610.  
  611.    systems              describes the systems you connect with
  612.    dialers              modem initialization and dialing
  613.    scripts              commands for login into the remote host
  614.    permits              permission and other misc settings
  615.  
  616. The advanced model always requires the 'systems' file. In addition, the
  617. 'scripts' and 'dialers' files are required for dial-out, and the 'permits'
  618. one for dial-in usage.
  619.  
  620. The 'permits' file is only mandatory for dial-in mode, but is optional and
  621. will be used in dial-out mode, even with the basic configuration model.
  622.  
  623. The location of the configuration files are not fixed. The main config file, 
  624. FXUUCP.CFG (also called STATIC), may be pointed by the environment. The
  625. location of the other ones is overridden with the 'fx.confdir' option.
  626.  
  627.  
  628.                 ---   Command line parameters   ---
  629.  
  630. Command line parameters cover runtime options that override settings in
  631. the configuration file. A few of them, are available only as runtime
  632. parameters and cannot be set in the config file. With the exception of
  633. -r0 or -s that specify dialin-dialout mode, none of the options are
  634. strictly required.
  635.  
  636. The switches follow the syntax of the traditional Unix 'getopt' parsing,
  637. with the following rules:
  638.  
  639. o   Options _are_ case sensitive
  640. o   You cannot use '/' as the switch character, only '-'
  641. o   Multiple options may be folded in a single parameter (-aoV)
  642. o   Options that require arguments may have, but do not require
  643.     spaces before the argument: -r 3
  644. o   List arguments cannot have spaces in the middle of the list:
  645.     "-s host1, host2" is incorrect, use "-s host1,host2"
  646.  
  647.  
  648. Following is a complete list of valid parameters for the current
  649. version of FX Uucico. Overrides 'xxx' means that the option takes
  650. precedence of the 'xxx' configuration variable.
  651.  
  652.   -a            Disable file restart (crash recovery)
  653.  
  654.   -b bps        Baud rate. Sets the DTE speed between the computer
  655.                 and the modem. Overrides 'speed'.  Disregarded if 
  656.                 locked with 'uu.locked'
  657.  
  658.   -d device     Device name or port number. May optionally include
  659.                 an I/O address and/or IRQ. See internal driver for
  660.                 the full syntax. Overrides 'device'
  661.  
  662.   -g grade      Single letter that sets the minimum grade for trans-
  663.                 ferring jobs. Used only in dialout mode.  Overrides
  664.                 'uu.grade'
  665.  
  666.   -i            Do not check carrier detect. Needed for some direct
  667.                 connections with null-modem cables
  668.  
  669.   -k pkt_size   Packet size for the 'g' and 'G' protocols.  Overrides
  670.                 'fx.gPktSize'. The packet size have a dramatic influence
  671.                 on the throughput, but values unsupported by your remote
  672.                 host might break the connection. See the 'g' protocol
  673.  
  674.   -n hostname   Changes the machine name as communicated to the remote
  675.                 host. Overrides 'uucpname'
  676.  
  677.   -o            Disable enforcement of time restrictions specified in
  678.                 'systems' and 'permits'
  679.  
  680.   -p permit     Use the name permit entry. See 'permits' for the full
  681.                 searching algorithm used by FX
  682.  
  683.   -r retries    Amount of retries before giving up calling each one of
  684.                 the current entries in 'systems'. Overrides 'uu.retries'.
  685.                 -r0 have special meaning and engages dial-in mode.
  686.  
  687.   -t seconds    Timeout on scripts execution. Overrides 'uu.time'
  688.  
  689.   -u login      Login or account name verified by the login sequence in
  690.                 dialin mode. This allows FX to verify that the remote
  691.                 host name corresponds to the login name as specified in
  692.                 'permits'
  693.  
  694.   -v debug      Debug level for screen output. Overrides 'uu.visual'
  695.  
  696.   -w windows    Window size for the 'g' and 'G' protocols.  Overrides
  697.                 'uu.windows'.
  698.  
  699.   -x debug      Debug level for file output. Overrides 'uu.debug'
  700.  
  701.   -z trigger    Sets trigger levels for 16550A uarts. -z0 disables
  702.                 fifo usage and autodetection.
  703.  
  704.   -S            Disable variable packets ('g' protocol only).
  705.  
  706.   -V            Enable status bar and direct video access.
  707.  
  708.  
  709.  
  710.               ---   STATIC configuration file   ---
  711.  
  712. The main configuration file was traditionally called 'STATIC', but its
  713. _default_ name has been changed to FXUUCP.CFG. Both the name and the location
  714. may be altered from the environment. This method allows you to select among
  715. different configurations at run time. 
  716.  
  717. o   FX first search the environment for the variable 'FXUUCP'.
  718. o   If FXUUCP is not in the environment, the keyword 'WAFFLE' is searched.
  719. o   If none is found, FX tries to read the file "FXUUCP.CFG" in the same 
  720.     directory where the executable is located. This means that no environment
  721.     variables are strictly needed.
  722.  
  723. The master configuration file is required in all cases. If all the three
  724. steps mentioned above fail, the program will refuse to run. When using the
  725. environment, the content must specify a full path _and_ filename.
  726.  
  727. Examples:
  728.  
  729.    SET FXUUCP=c:\fxuucp\fxuucp.cfg
  730.    SET WAFFLE=c:\waffle\system\static
  731.  
  732.  
  733. There are lot of options that may be set, but again, most have reasonable
  734. defaults. We show only the most useful configuration options. Advanced user
  735. will find a full reference in the samples provided with this package.
  736.  
  737. o   The syntax is: "option : setting".
  738. o   Case is not sensitive.
  739. o   Free white space may be added or omitted at both sides of the ':'
  740.     separator.
  741. o   The option name must start on the first column. 
  742. o   Unknown keywords are skipped without warning.
  743. o   A '#' or ';' in the first column is conventionally used as a comment.
  744. o   Empty lines may be inserted for better readability.
  745.  
  746. o   When duplicated keywords are found, the last one takes precedence.
  747. o   Multiple files may be included. The syntax is the same as with any other
  748.     option: "include: c:\mydir\config3". There is no limit in the number of
  749.     files included, they may be nested four levels deep.
  750.  
  751.  
  752. Some option are booleans, they may be enabled or disabled: 
  753.  
  754.      yes, true, 1 = enabled
  755.      no, false, 0 = disabled
  756.  
  757. Mandatory entries that _must_ be present in the configuration file:
  758.  
  759.   device        Default port number of your serial/modem device.
  760.  
  761.   speed         Default speed setting of the serial port
  762.  
  763.   spool         Directory path for queuing outgoing and receiving
  764.                 incoming jobs. One subdirectory will be created
  765.                 for each connecting host.
  766.  
  767.   uucpname      Your machine name as known by your neighbors. It
  768.                 must match the 'system' entry in your remote host.
  769.  
  770.  
  771. Important keywords that its only presence affect many other options:
  772.  
  773.   waffle        The presence of this option, alerts FX that you are
  774.                 running under Waffle and use its directory tree. It
  775.                 specifies the root directory for the whole tree. Non
  776.                 explicitly configured subdirs, will be created under
  777.                 this one.
  778.  
  779.                 When this keyword is absent, _all_ directories default to
  780.                 the one where the executable is located. Or in other words,
  781.                 a _single_ directory is used by default. The exeception is
  782.                 the spool, that must be explicitly configured (but can be
  783.                 configured to be the same one).
  784.  
  785.   fx.rSystem    This option selects between the basic and the advanced
  786.                 configuration model. The entry specifies all the data
  787.                 needed to access your remote host. The syntax is almost
  788.                 the same as the 'systems' file and is describe in that
  789.                 chapter.
  790.  
  791.                 If missing, FX will enter the advanced model and will
  792.                 search for the accessory configuration files.
  793.  
  794.  
  795. Other useful options:
  796.  
  797.   uu.debug      Debug level, controls the amount of info written
  798.                 to the 'uucico' and 'debug' logs.
  799.  
  800.   uu.driver     Selects between 'NATIVE' or 'FOSSIL' driver.
  801.                 Overrides 'driver'.
  802.  
  803.   uu.locked     Locked port speed. Uucico will use always this setting
  804.                 and disregard any other speed options.
  805.  
  806.   uu.time       Timeout in seconds for scripts executions.
  807.  
  808.   uu.visual     Debug level, controls the amount of message displayed
  809.                 on the screen.
  810.  
  811.   fx.gPktSize   Default packet size for the 'g' protocols family
  812.  
  813.   fx.share      Enables the networking features of FX Uucico.
  814.  
  815.  
  816. Again, there are more options available, a full reference is provided in
  817. the samples. Some parameters, typically the packet size, may be configured
  818. in a per systems basis using the 'permits' facility.
  819.  
  820.  
  821.                       ---   'systems' file   ---
  822.  
  823. The 'systems' file describe the remote hosts you are connecting, usually
  824. called neighbors. At least one line must be present for each one. Multi-
  825. ple entries for the same host are allowed specifying different dialing
  826. numbers or changing other parameters. Multiple entries will result in
  827. Uucico using them in sequence when retrying a failed connection.
  828.  
  829.  
  830. #The format of the 'systems' entry is:
  831. #
  832. #host  time protocol  dialer     script  phone-number  login password
  833. #
  834. laser  Any    g      Hayes.2400  toUnix    123-45678 uulaser    secret
  835.  
  836.  
  837.    host       Equivalent to your uucpname. Your neighbors must list
  838.               your name in their 'systems' or equivalent file.
  839.  
  840.    time       Allowed times for placing outgoing calls. See below
  841.               for a description of this field.
  842.  
  843.    protocol   Single letter. Selects the protocol on outgoing calls.
  844.  
  845.    dialer     Dialer script. This is not a literal script, but the
  846.               name of a matching entry in the 'dialers' file.
  847.  
  848.    script     Login script. Same as above.
  849.  
  850.    phone      Telephone number of your remote host. Will replace
  851.               \T escapes in scripts.
  852.  
  853.    login      Your login name that will grant you access on the
  854.               remote machine. Replaces \L in scripts.
  855.  
  856.    password   Password for to the login. Replaces \P in scripts.
  857.  
  858.  
  859. Only the first field (host) is used in incoming calls. The last three
  860. entries are optional and normally not needed in direct serial links.
  861.  
  862.  
  863. The fx.rSystem option, when present in the master config file, replaces
  864. 'systems' completely. The syntax is the same, but instead of having
  865. fields 'pointing' to entries in the 'dialers' and 'scripts' files, the
  866. actual script is embedded:
  867.  
  868. #fx.rSystem: host   time protocol    script
  869.  
  870. fx.rSystem:  laser  Any  g      "" ATD111 CONNECT \m\c in: user word: secret
  871.  
  872. Note that the escapes \T, \L and \P are not usable because they are not 
  873. defined. Also note that line continuation is currently not supported in
  874. the master file, but the line may be quite long.
  875.  
  876.  
  877.                      ---   'dialers' file   ---
  878.  
  879. #
  880. #Dialer-name   device  speed      dialer-script
  881. #
  882. Hayes.2400     Any     default    "" AT OK ATD\T CONNECT \m\c
  883.  
  884.    dialer     Name of the entry. Uucico will search for a matching
  885.               entry as specified in the 'systems' dialer field.
  886.  
  887.    device     Overrides  default device port in the config file.
  888.  
  889.    speed      Overrides default speed in the configuration file.
  890.  
  891.    script     The rest of the line is the actual dialer script.
  892.               Scrip syntax is described below
  893.  
  894.  
  895.                     ---   'scripts' file   ---
  896.  
  897. #
  898. #script-name   login-script
  899. #
  900. toUnix         in:--in: \L ord: \P
  901.  
  902.  
  903.    script-name      Name of the entry.
  904.  
  905.    login-script     The rest of the line is the actual login script.
  906.  
  907.  
  908.                     ---   scripts syntax   ---
  909.  
  910. Scripts are a very powerful tool. Note that because of the script
  911. design, uucico is less smart that normal communication programs. It
  912. doesn't have a specific command for dialing, nor a fixed sequence
  913. of initialization commands. It's all up to you to make it as complex
  914. or simple as you wish or need. The dialer script is performed first,
  915. and then the login script.
  916.  
  917. The scripts are formed by pairs of send/expect sequences.  Send tokens
  918. are transmitted to the serial port and then it waits for the expect
  919. one. If the expect token doesn't arrive in time, the alternate token
  920. if present is sent, otherwise the script fails. The syntax define
  921. special escape sequences that are replaced at run time.  Tokens that
  922. are not alternate are separated by free white space. Empty tokens
  923. may be set with a pair of double quotes.
  924.  
  925.   ""   ATZ OK    ATD123-45678 CONNECT
  926.  
  927. Long scripts may be continued in the next line placing free whitespace
  928. (one or more spaces and/or tabs) in the continuation line.  Using this
  929. method there is no formal limit to the script length.
  930.  
  931. gin: \L   word: \P   service: uucp    gateway: direct   age: 20
  932.           hobbies: soccer   others: ENOUGH!
  933.  
  934. A pair of dashes signal an alternate sequence, the token between the
  935. dashes is sent, and the script expects a new token after the last dash.
  936.  
  937.      in:-BREAK-in: \L
  938.  
  939. In this example, if the in: token is not found, a BREAK is sent and then
  940. another in: is expected.
  941.  
  942.  
  943.  
  944. Escapes allowed in send tokens only:
  945.  
  946.      \ooo          Send any byte represented in octal notation.
  947.  
  948.      \c            Suppress ending carriage return. By default all send
  949.                    tokens have a carriage return appended.
  950.  
  951.      \d            Delay of two seconds.
  952.  
  953.      \E            Turn echo check on. Valid for this token _only_. It is
  954.                    very useful for some modems that are slow receiving
  955.                    commands, and tend to loose some characters.
  956.  
  957.      \e            Turn echo check off.
  958.  
  959.      \K            Send break signal. This is basically an antique for
  960.                    old Unix dialers.
  961.  
  962.      \L            Replaced by the login name field in the 'systems' entry.
  963.  
  964.      \m            Turn carrier checking on. By default carrier detect
  965.                    is not sampled during scripts execution.
  966.  
  967.      \M            Turn off carrier checking during the rest of the
  968.                    script.
  969.  
  970.      \p            Delay of approximately half a second.
  971.  
  972.      \P            Replaced by the current password.
  973.  
  974.      \S            Replaced by the remote host uucp name.
  975.  
  976.      \T            Replaced by the phone number field in the 'systems' entry.
  977.  
  978.      BREAK         Send a break signal
  979.  
  980.      P_NONE        Sets the comm line to 8 bits no parity.
  981.  
  982.      P_EVEN        Set the line to 7 bits even parity.  Normally valid for
  983.                    the login sequence only. As most protocols will revert
  984.                    back to 8 bits no parity.
  985.  
  986.      P_ODD         Set the line to 7 bits odd parity. Same note as above.
  987.  
  988.  
  989.  
  990. Escapes allowed in both send and expect tokens:
  991.  
  992.      \b            Backspace
  993.      \m            Carriage return
  994.      \n            Line feed
  995.      \r            Carriage return
  996.      \s            Space
  997.      \t            Tab
  998.      \\            Backslash
  999.  
  1000.  
  1001. A ~ddd sequence at the end of any expect string overrides the default
  1002. timeout (uu.time and -t):
  1003.  
  1004.    uu.time : 10
  1005.  
  1006.    "" AT OK ATDP\P CONNECT~60
  1007.  
  1008. The OK must arrives ten seconds after the AT command, but the CONNECT
  1009. message may take up to 60 seconds.
  1010.  
  1011.  
  1012.                    ---   'permits' file   ---
  1013.  
  1014. The 'permits' file controls security issues. FX also uses the 'permits'
  1015. file to change some common parameters between different systems. It
  1016. doesn't have a fixed field format as the other configuration files. Each
  1017. entry is started with a name that identifies this permit.  Other parameters
  1018. may be added in any order.
  1019.  
  1020.  
  1021. The selection of the current permit uses the following algorithm:
  1022.  
  1023.    If -p <permit> was received from the command line
  1024.        looks for the named permit, otherwise fails.
  1025.    else (no -p parameter)
  1026.        search for a permit name matching the remote system name.
  1027.    if not found
  1028.        search for the permit named 'default'
  1029.  
  1030. Note that the -p parameter, forces a specific permit and prevents
  1031. using the 'default' one. Without a matching permit the connection
  1032. will not be performed.
  1033.  
  1034.  
  1035. The 'fx.joinDefPermit' configuration modifies the exact behavior
  1036. of the 'default' permit and the default values assumed for options
  1037. not present in the current permit.
  1038.  
  1039. When 'fx.joinDefPermit' is off (default), the permit named 'default'
  1040. doesn't affect parameters on other permits. Parameters not specified
  1041. in the current permit, are considered not present and assume internal
  1042. defaults.
  1043.  
  1044. When 'fx.joinDefPermit' is on, the permit named 'default' is always
  1045. parsed. Parameters not specified in the current permit, inherit
  1046. settings from the 'default' permit. This is very useful to set
  1047. global parameters without restricting to a single permit.
  1048.  
  1049.  
  1050. Each parameter starts with a slash, the '=' character separates the
  1051. keyword from the value. Spaces or tabs must be present between para-
  1052. meters. Line continuation is fully supported, and is customary to
  1053. put each parameter in a single line. Many are relevant for dial-in
  1054. calls only.
  1055.  
  1056.     /account         login name allowed for this permit.  This option
  1057.                      in conjunction with he -u parameter is the key
  1058.                      for a secure system. Dial-in only
  1059.  
  1060.     /speed           Minimum connect speed. Dial-in only.
  1061.  
  1062.     /time            Allowed dial-in calls. Same syntax as the time
  1063.                      field on 'systems'. 'never' disables dial-in
  1064.                      for this permit.
  1065.  
  1066.     /system          Use 'any' to allow for anonymous uucp.
  1067.  
  1068.     /download        Download directory for sending non-job files.
  1069.                      It is enforced on remote requests only.  Specify
  1070.                      a single name only, multiple directories are not
  1071.                      supported. It may be an absolute path, or a relative
  1072.                      subdir from the 'spool' directory. See 'fx.trusted'
  1073.                      All download requests are denied if not present.
  1074.  
  1075.     /upload          Upload directory for receiving non-job files. Same
  1076.                      notes as 'download'.
  1077.  
  1078.     /fx.trusted      Boolean option. Normally FX expands non-job requests
  1079.                      under the 'download' or 'upload' settings. The remote
  1080.                      user cannot specify an absolute path.  It must use the
  1081.                      ~/ uucp convention or a simple file name without path.
  1082.                      Enabling this option grants full access to the whole
  1083.                      file systems. _Every_ request is accepted as long
  1084.                      as it is not denied by the operating system. Note,
  1085.                      this produces a SERIOUS SECURITY HOLE.  Use only for
  1086.                      yourself, or really 'trusted' users.
  1087.  
  1088.     /fx.maxtime      Maximum time in seconds allowed for the connection.
  1089.                      The timer starts counting from the end of the uucp
  1090.                      handshake. FX checks for time exceeded between job
  1091.                      transactions, it will not abort the current file.
  1092.                      The limit is per session only, no daily total is
  1093.                      maintained.
  1094.  
  1095.     /fx.maxbytes     Maximum total bytes allowed for transmission. The
  1096.                      value represent the sum of bytes sent plus received.
  1097.                      Same notes as 'fx.maxtime'
  1098.  
  1099.     /fx.gpktsize     Overrides the 'g' and 'G' protocols packet size. If
  1100.                      you have increased the global packet size, put a 64
  1101.                      value for systems that do not support large packets.
  1102.                      Or, leave the global packet size at 64 bytes, and
  1103.                      set larger values for specific systems.
  1104.  
  1105.     /uu.windows      Overrides the 'g' and 'G' protocols windows size.
  1106.  
  1107.     /fx.shortpkts    Overrides the -S flag for enabling/disabling variable
  1108.                      packets on the 'g' protocol. Boolean option.
  1109.  
  1110.  
  1111.     Example:
  1112.  
  1113. laser     /account=uulaser
  1114.           /commands=rnews,rmail               (not used by Uucico)
  1115.           /download=d:\home\mydir
  1116.           /upload="uploads"
  1117.           /time=any
  1118.           /fx.gpktsize=1024
  1119.           /fx.maxtime=3600
  1120.  
  1121.  
  1122.                    ---   Time field format   ---
  1123.  
  1124. Time fields are present in the 'systems' and 'permits' files. The
  1125. 'systems' enforces dialout calls and the 'permits' dialin ones.
  1126.  
  1127. A time description starts with a special abbreviated keyword and may
  1128. be optionally followed by a numeric range. Multiple entries separated
  1129. by commas ',' are supported. The time will be validated if it matches
  1130. anyone of the entries.
  1131.  
  1132. Keywords:
  1133.  
  1134.         Any                Matches any day.
  1135.  
  1136.         Never              No match. Disables diaout calls in 'systems'
  1137.                            and dialins in 'permits'
  1138.  
  1139.         Evening            Matches any time on Saturday and Sunday
  1140.  
  1141.         dd                 Matches the specific day(s), one or more of:
  1142.                            Su, Mo, Tu, We, Th, Fr, Sa, Wk
  1143.                            'Wk' matches any day expect Sunday and Saturday
  1144.  
  1145.  
  1146. A 'military' time range may be added after the keyword to further restrict
  1147. the entry. Military times are four decimal digits in the format 'hhmm'
  1148.  
  1149.         SaSu2000-2300      Matches Saturday and Sunday from 20:00 to 23:00
  1150.  
  1151.         Any1000-1600,Mo    Matches any day from 10 Am to 4 Pm, and Monday
  1152.                            at any time.
  1153.  
  1154.  
  1155.  
  1156. VII.  ASSISTANCE
  1157.  
  1158.  
  1159. The author can be contacted at:
  1160.  
  1161. Jorge Cwik    jorge@satlink.net
  1162.  
  1163. We welcome comments, suggestions and bug reports. I am not directly on the
  1164. net. I may take some time from the moment you send me a mail, until I receive
  1165. it (and vice versa). I do answer to every single query, but you may get a
  1166. faster response reaching our mailing-list.
  1167.  
  1168. When reporting a bug, please include pertinent clips from your logfiles, or
  1169. any other documentation which may assist us in resolving the problem.
  1170.  
  1171. FX maintains a set of servers to support its products. They include a
  1172. mailing list, mail and ftp servers, etc. See SUPPORT.DOC or write to
  1173. fx-info@uufx.net to receive the latest update.
  1174.  
  1175. Thanks to all the testers for their help, and especially to Bob Kirkpatrick 
  1176. and his servers at Dog Ear'd Systems of Spokane, WA.
  1177.  
  1178.  
  1179.  
  1180. IX. LEGAL
  1181.  
  1182. FX software is not in the public domain.
  1183. FX UUCICO is (c) copyright 1993, 1994 by Jorge Cwik.
  1184.  
  1185. This release (1.0) may be freely distributed by normal shareware channels,
  1186. as long as they do not charge for it beyond a nominal fee for diskette or
  1187. transmission, and the original zip file is not modified in any way. Commer-
  1188. cial packages willing to distribute our software, contact us for licenses
  1189. and custom releases.
  1190.  
  1191. FX UUCICO is shareware. You may freely test the software for a period of
  1192. up to 30 days without paying any registration fee. After that period has
  1193. elapsed, you are required to register the software. Please see the file
  1194. REGISTER.FRM for information on product registration.
  1195.  
  1196. The author of FX UUCICO offers this release AS IS, and assumes no liability
  1197. for any problems incurred through its use.  The author reserves all Rights 
  1198. to the software.
  1199.  
  1200.